/*
* 
* Fichier source projet intel Acceler8 sous license GNU GPL v3.
* Voir http://www.gnu.org/copyleft/gpl.html pour plus d'informations
* La license est egalement disponible dans le repertoire /doc
* 
* Cree le : jeudi 10 novembre 2011 à 15 : 17.
* Auteurs : Axel MOINET et Arnaud DURAND.
* 
* Nom de fichier : cgh.h
* Chemin du fichier : ./src/classes/cgh/cgh.h
* 
* Description : Classe d'implémentation du calcul de Cgh.
* 			Utilisé avec un thread POSIX pour lancer le calcul en parallèle de la lecture du fichier.
* 
*/
#ifndef CGH_H_INCLUDED
#define CGH_H_INCLUDED

#include "../parallelforcgh/parallelforcgh.h"
#include "../threadprincipal/threadprincipal.h"
#include "../../functions/prefixetabfunctions.h"
#include "../subseqcompute/subseqcompute.h"
#include "tbb/concurrent_vector.h"
#include "tbb/parallel_for.h"
#include "tbb/task_scheduler_init.h"
#include "tbb/task.h"
#include <iostream>

class cgh : public tbb::task {

public :
	cgh(threadPrincipal *p_thread);

	int computeAllCgh();
	tbb::task* execute();

private :

	threadPrincipal *thread;
	int g;
	int h;
	int startValue;
	tbb::concurrent_vector<int> *cghTab;
	subSeqCompute *calculSousSequence;
};

#endif
